package com.kaigejava.juc.queue.api;

import org.junit.Test;

import java.util.concurrent.ArrayBlockingQueue;

/**
 * @author kaigejava
 *
 * 第三组API:
 * 阻塞，一直等到
 * 添加元素：put(e):
 * 删除元素：take():
 * 获取队首元素方法：无
 */
public class BlockingApi {

    /**
     * 阻塞，一直等待API
     */
    @Test
    public void blockingApiTest() throws InterruptedException {
        ArrayBlockingQueue<String> abQueue = new ArrayBlockingQueue<>(3);
        abQueue.put("凯哥");
        abQueue.put("凯哥java");
        abQueue.put("kaigejjava");
        System.out.println("==队列添加满了===");
        //当队列满的时候，再put会一直等待着
      //  abQueue.put("凯哥Java(kaigejava)");
      //  System.out.println("===添加第四个元素后====");
       for (int i = 0; i < 4; i++) {
            //当i==3的时候，也就是当队列中没有元素的时候，会一直等待着
            System.out.println("当前被移除的元素:"+abQueue.take());
        }
    }
}
